Many computing system implemented data and/or word processing programs, applications, processes, and/or systems utilize data tables for the processing and displaying of data. A typical data table includes data arranged in columns and rows with the columns or rows having headings indicating the subject matter/content displayed in the column or row. When viewing and/or interacting with data arranged in tables it is often highly desirable to sort the data based on the subject matter/content in the columns and/or rows.
As an example, assume a listing of employees is presented in a data table. For this example, further assume that the data table is partitioned into columns including a first column showing the employee's last name, a second column showing employee's first name, and a third column showing the employee's birth date. When viewing, or interacting, with data table it may often be highly desirable to the user to sort the employees by last name. Typically, this would be accomplished through a user interface and user interface device whereby the user would designate the first column, i.e., the employee's last name column, as the sort subject matter/content. Typically this would be accomplished by clicking on an icon, or the column heading of the column, the user wishes to sort by, and then selecting, or entering, a sort order or, in some cases, the order might be automatically selected, such as an alphabetical listing A to Z or Z to A.
In many instances however it would be equally desirable to, in addition to sorting by the last name, to sort the data table by the second column, or the first name, as well. For instance, continuing with the example discussed above, a user may wish to sort by last name to see all the employees having a last name Smith grouped together and then the user may further wish refine the display to see all the employees having the last name Smith and the first named John. In addition, a user may wish to see all the employees named John Smith listed by descending, or ascending, birth date. This would involve, in this example, sorting by the third column, employee birth date, in addition to the first two columns, employee last name and employee first name.
Currently, many applications utilizing data tables, and providing a user interface with a data table, only provide for sorting by a single column, or row, at a time. Consequently using many currently available applications, in the example above, the user could first short by the first column and see a listing of all employees with the last name Smith. However, once the user wanted to view all employees sorted by first name, such as John, the sorting by last name would be discarded and the user would be left with a listing of all employees having a first name John, including those named John Smith, but also those employees having other last names. Likewise, continuing with the example above, if the user were to sort by birth date, the sorting by last name, the sorting by first name, or any other previous sorting, would be discarded and the user would be presented with a listing of all employees by ascending, or descending, birth date.